#pragma once

#include <Windows.h>
#include "Enum.h"

struct XY
{
	int x, y;

	XY()	{x = 0; y = 0;}
	XY(int arg)	{x = arg; y = arg;}
	XY(int X, int Y)	{x = X; y = Y;}


	//comparison
	bool operator<(XY right)	{ return ( (x<right.x) && (y<right.y) );}
	bool operator>(XY right)	{ return ( (x>right.x) && (y>right.y) );}
	bool operator==(XY right)	{ return ( (x==right.x) && (y==right.y) );}
	bool operator!=(XY right)	{ return !( (x==right.x) && (y==right.y) );}

	//math
		//XY
	XY operator+(XY right)		{return XY(x + right.x, y + right.y);}
		//int
	XY operator*(int right)		{return XY(x * right, y * right);}

	//assignment
		//POINT
	void operator=(POINT right)	{x = right.x;	y = right.y;}
		//XY
	void operator+=(XY right)	{x += right.x;	y += right.y;}
	void operator-=(XY right)	{x -= right.x;	y -= right.y;}
	void operator/=(XY right)	{x /= right.x;	y /= right.y;}
		//int
	void operator/=(int right)	{x /= right;	y /= right;}
};

struct SpriteInfo
{
	int numTextures, currentTexture;
	int reference, orientation;
	ColorPalette color;
	XY pos, scale;
	SpriteInfo()	{numTextures = currentTexture = reference = orientation = 0; scale = pos = XY(1);}
};

struct MouseInfo
{
	XY pos;
	bool Clicked;
	int MeterMod;
};

struct QuadInfo
{
	int Enemies, Suns, Stations;
};